﻿#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;

//int main()
//{
//	int a[3][2] = { {0,1},{2,3},(4,5) };// 逗号表达式，只存后面的
//	int* p;
//	p = a[0];
//	printf("%d", p[0]);
//	return 0;
//}


//int main()
//{
//	int a[5][5];
//	int(*p)[4];
//	p = a;
//	printf("%p %d", &p[4][2] - &a[4][2], &p[4][2] - &a[4][2]);// %p打印直接将里面的值当成地址打印，即转换16进制位
//	return 0;
//}

//int main()
//{
//    int aa[2][5] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
//
//    int* ptr1 = (int*)(&aa + 1);
//    int* ptr2 = (int*)(*(aa + 1));
//
//    printf("%d,%d", *(ptr1 - 1), *(ptr2 - 1));
//
//    return 0;
//}

//int main()
//{
//    char* a[] = { "work","at","alibaba" };
//    char** pa = a;
//    pa++;
//    printf("%s\n", *pa);
//    return 0;
//}

//
//int main()
//{
//    char* c[] = { "ENTER","NEW","POINT","FIRST" };
//    char** cp[] = { c + 3,c + 2,c + 1,c };
//    char*** cpp = cp;
//    printf("%s\n", **++cpp);
//    printf("%s\n", *-- * ++cpp + 3);
//    printf("%s\n", *cpp[-2] + 3);
//    printf("%s\n", cpp[-1][-1] + 1);
//    return 0;
//}

//void maopao(int* p, int n)
//{
//	for (int i = 0; i < n - 1; i++)
//	{
//		for (int j = 0; j < n - i - 1; j++)
//		{
//			if (p[j] < p[j + 1])
//			{
//				int tmp = p[j];
//				p[j] = p[j + 1];
//				p[j + 1] = tmp;
//			}
//		}
//	}
//
//}
//void print(int* p, int n)
//{
//	for (int i = 0; i < n; i++)
//	{
//		printf("%d ", i[p]);
//	}
//
//}
//int main()
//{
//	int a[] = { 1,2,3,4,5,6,7,8,9,10 };
//	maopao(a, 9);
//	print(a, 9);
//	return 0;
//}

//int main()
//{
//    char* s = (char*)"woaiwojia";
//
//	return 0;
//}

//#pragma pack()//设置默认对⻬数
//struct S
//{
//	char c1;
//	int i;
//	char c2;
//};
//
//int main()
//{
//	printf("%d\n", sizeof(struct S));
//	return 0;
//}

//struct S
//{
//	int data[1000];
//	int num;
//};
//struct S s = { {1,2,3,4}, 1000 };
////结构体传参
//void print1(struct S s)
//{
//	printf("%d\n", s.num);
//}
////结构体地址传参
//void print2(struct S* ps)
//{
//	printf("%d\n", ps->num);
//}
//int main()
//{
//	print1(s);  //传结构体
//	print2(&s); //传地址
//	return 0;
//}
//函数传参的时候，参数是需要压栈，会有时间和空间上的系统开销。
// 如果传递一个结构体对象的时候，结构体过大，参数压栈的的系统开销比较大，所以会导致性能的下降。
// 所以结构体传参要传地址效率更高；

// // 
















































